void TransIm (Forward, ImSize, RealIm, ImagIm)
int Forward, ImSize;
float ** RealIm;
float ** ImagIm;
{
   int    r,c;
   float  *VecRe;
   float  *VecIm;

   VecRe = (float *) malloc (ImSize*sizeof(float));
   VecIm = (float *) malloc (ImSize*sizeof(float));

   for (r=0; r<ImSize; r++) {
      for (c=0; c<ImSize; c++) {
         VecRe[c] = RealIm[r][c];
         VecIm[c] = ImagIm[r][c];
      }
      fft (Forward, ImSize, VecRe, VecIm);
      for (c=0; c<ImSize; c++) {
         RealIm[r][c] = VecRe[c];
         ImagIm[r][c] = VecIm[c];
   }  }

   for (c=0; c<ImSize; c++) {
      for (r=0; r<ImSize; r++) {
         VecRe[r] = RealIm[r][c];
         VecIm[r] = ImagIm[r][c];
      }
      fft (Forward, ImSize, VecRe, VecIm);
      for (r=0; r<ImSize; r++) {
         RealIm[r][c] = VecRe[r];
         ImagIm[r][c] = VecIm[r];
   }  }
   free (VecRe);
   free (VecIm);
}
